15. 练习:处理错误

练习:处理除以零的情形

现在运行下面的代码将在第二次调用 handle_zero 函数时导致错误,因为它遇到了 ZeroDivisionError 异常。

请修改下面的函数以处理该异常。如果在函数的第一行遇到该异常,应该输出警告消息并返回空列表。否则,应该运行函数的剩余代码。最后,该函数应该始终输出返回了多少组。

def create_groups(items, num_groups):
    size = len(items) // num_groups

    groups = []
    for i in range(0, len(items), size):
        groups.append(items[i:i + size])

    print("{} groups returned.".format(num_groups))
    return groups

print("Creating 6 groups...")
for group in create_groups(range(32), 6):
    print(list(group))

print("\nCreating 0 groups...")
for group in create_groups(range(32), 0):
    print(list(group))

修改上面的脚本以处理除以零错误。正确修改的话,应该会输出:

Creating 6 groups...
6 groups returned.
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]
[10, 11, 12, 13, 14]
[15, 16, 17, 18, 19]
[20, 21, 22, 23, 24]
[25, 26, 27, 28, 29]
[30, 31]

Creating 0 groups...
WARNING: Returning empty list. Please use a nonzero number.
0 groups returned.